#python 数据容器  批量存储、批量处理
#容纳多份数据，每份单独的数据为元素
#五类：列表list、元组tuple、字符串str、集合set、字典dict

#1、数据容器：list （列表）
#定义格式
#[元素1，元素2，元素3......]
#变量名称=[]   定义空列表
#变量名称=list()
# name_list=['小王',45,True] #列表中存储的元素类型不受限制
# print(name_list)
# int_list=[[1,2],[2,3]]  嵌套列表
# print(int_list)


#list(列表)的遍历 索引  切记不能越界 上限为2^63-1
#列表是可以容纳多个元素的，可以容纳不同类型的元素
#数据是有序存储的，允许重复数据的存在
#可以对存储的数据进行修改（增删改查）
# test_list=['xiaofeng',1,True]
# i=0
# for i in range(0,3): #正向 0 1 2
#     print(test_list[i],end=' ')
#反向 -1 -2 -3  (也就是说从-1开始往后递减)
# test_list=['xiaofeng',1,True]
# i=-1
# while i>-4:
#     print(test_list[i],end=' ')
#     i-=1
#嵌套
# test1_list=[[1,2],[3,4]]
# for i in range(0,2):
#     for j in range(0,2):
#         print(test1_list[i][j],end=' ')

#列表的常用操作:查找、插入、删除、清空、修改、统计元素的个数
#int_list=[1,2,3,4,3,4,2,2,2]
#1查找 对应的下标索引（正向索引）  根据值查找
#print(int_list.index(5))
#2插入  指定位置的插入
# int_list.insert(2,99)
# print(int_list)
#3追加
# int_list.append(900)
# print(int_list)
#追加   很多个元素，通过另一个数据容器  一批元素
# test=[22,3,6]
# int_list.extend(test)
# print(int_list)
#4删除  指定位置的删除  三种删除的方法
# del int_list[2]
# print(int_list)
# int_list.pop(0)  可以用返回值接收
# print(int_list)
#根据指定的内容进行删除
# int_list.remove(3)
# print(int_list)
#5 列表的清空
# int_list.clear()
# print(int_list)
#6 列表中元素的统计  传入被统计的元素
# print(int_list.count(2))
# print(len(int_list))  计算列表的元素数量
#列表的循环遍历（迭代） 将容器中的元素依次取出进行操作 while for
# i=0
# while i<len(int_list):
#     print(int_list[i],end=' ')
#     i+=1
# print()

# for j in range(0,len(int_list)):
#     print(int_list[j],end=' ')

# for j in int_list:
#     print(j, end=' ')





#元组的定义和操作  元组定义完成，就不可以修改（只读的list）
#支持下标索引
#语法  （元素1，元素2，元素3.....）
#空元组  （） 或者 tuple()
#mylist=(1,2,3,'xiaofeng',[122,3])
# my=(1,)#切记带一个逗号
# for i in mylist:
#     print(i,end=' ')
#可以嵌套
#方法 index count len
# i=0
# while i < len(mylist):
#     print(mylist[i],end=' ')
#     i+=1
#如果元组里面嵌套了一个列表，那么是可以通过这个元组先访问到列表进行修改的
#mylist[4][1]=3
# i=0
# while i < len(mylist):
#     print(mylist[i], end=' ')
#     i += 1
# print(mylist.index('xiaofeng'))



#字符串的定义和操作
#字符串是字符的容器  不支持修改
mystr='12xiao feng21'
# print(mystr[2])
# print(mystr.index('x'))

#字符串的替换   不是修改字符串本身，而是得到了一个新的字符串
# newmystr=mystr.replace('xiao','da')
# print(newmystr)
#字符串的分割  字符串本身不发生变化，而是得到了一个列表对象
# newmystr=mystr.split(' ')
# print(newmystr)
#字符串的规整操作  去除前后的空格(不传入参数)/去除前后指定的字符串
#print(mystr.strip('12'))
#print(mystr.count('1'))
#遍历
